//#include <iostream>
//#include <algorithm>
//#include <vector>
//#include <cmath>
//#include <functional>
//#include <climits>
//#include <cstring>
//#include <string>
//#include <unordered_map>
//#include <unordered_set>
//#include <map>
//#include <set>
//#include <queue>
//#include <stack>
//#include <deque>
//
//#define quickio ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//#define endl "\n"
//
//using namespace std;
//typedef long long ll;
//
//int n;
//vector<int>v;
//
//void dfs(int ans)
//{
//	if (ans <= 1000)
//		v.push_back(ans);
//
//	string s = to_string(ans);
//	int sz = s.size();
//	int x = pow(10, sz);
//	if (x > 1000)
//		return;
//	int maxx;
//	if (sz > 1)
//		maxx = ans / pow(10, sz - 1) / 2;
//	else
//		maxx = ans / 2;
//	for (int i = 1; i <= maxx; i++)
//		dfs(x * i + ans);
//}
//
//void solve()
//{
//	dfs(n);
//	//for (auto& e : v)
//	//	cout << e << ' ';
//	//cout << endl;
//	cout << v.size() << endl;
//	v.resize(0);
//}
//
//int main()
//{
//	while (cin >> n)
//		solve();
//	return 0;
//}